/*
求解一元二次方程组ax^2+bx+c=0的根：
如果a = 0，则不是二次方程。
如果b^2−4ac>0，则两个实根x=(−b±√b^2−4ac)/(2a)。
如果b^2−4ac=0，则唯一实根x=−b/(2a)。
如果b^2−4ac<0，则无实根。

输入方程的三个浮点数系数a、b、c，输出方程根的情况。

- 如果不是二次方程，输出 Not a quadratic equation;
- 如果有两个实根， 输出 两个实根值;
- 如果只有一个实根，输出 实根值;
- 如果没有实根， 输出 No real root

*/

/*
解题思路：
第一步：拿到编程问题不要慌，先分析问题需要定义哪些变量，以及这些变量的类型。
第二步：再分析有哪些常量需要定义。
第三步：确定哪些变量需要输入，哪些变量需要输出。
第四步：确定如何根据输入，计算出输出（即设计计算算法）。
第五步：将上述关键点翻译成C语言程序。
*/

#include <stdio.h>
#include <math.h>

int main(void)
{
    double a = 0.0, b = 0.0, c = 0.0;
    double x1 = 0.0, x2 = 0.0;

    scanf("%lf %lf %lf", &a, &b, &c);
    if (a == 0)
    {
        printf("Not a quadratic equation\n");
    }
    else if ((b * b - 4 * a * c) > 0)
    {
        // x=(−b±√b^2−4ac)/(2a)
        x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
        x2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
        printf("%lf %lf\n", x1, x2);
    }
    else if ((b * b - 4 * a * c) == 0)
    {
        // x=−b/(2a)
        x1 = -b / (2 * a);
        printf("%lf\n", x1);
    }
    else
    {
        printf("No real root\n");
    }

    return 0;
}

/*
#include <stdio.h>
#include <math.h>

int main(void)
{
    // 第一步：拿到编程问题不要慌，先分析问题需要定义哪些变量，以及这些变量的类型。
    double a = 0.0, b = 0.0, c = 0.0; // 三个系数
    double x1 = 0.0, x2 = 0.0; // 最多两个根

    // 第二步：再分析有哪些常量需要定义。
    // 本例：无

    // 第三步：确定哪些变量需要输入，哪些变量需要输出。
    scanf("%lf %lf %lf", &a, &b, &c); // 三个系数需要输入
    // 根的情况需要输出：
    // - 如果不是二次方程，输出 printf("Not a quadratic equation");
    // - 如果有两个实根， 输出 printf("%lf %lf", x1, x2);
    // - 如果只有一个实根，输出 printf("%lf", x1);
    // - 如果没有实根， 输出 printf("No real root");

    // 第四步：确定如何根据输入，计算出输出（即设计计算算法）。
    // 计算判别式b * b - 4 * a * c的值
    double delta;
    delta = b * b - 4 * a * c;
    // 根据delta的四种取值情况，采取不同的动作
    if (fabs(a) < 1e-6)
    { // a = 0，则不是二次方程。
      // 浮点数判断相等
      printf("Not a quadratic equation");
    } else if (delta > 0) {
        // 如果b^2−4ac>0，则两个实根x=(−b±√b^2−4ac)/(2a)。
        x1 = (-b + sqrt(delta)) / (2 * a);
        x2 = (-b - sqrt(delta)) / (2 * a);
        printf("%lf %lf", x1, x2);
    } else if (fabs(delta) < 1e-6) {
        // 如果b^2−4ac=0，则唯一实根x=−b/(2a)。
        x1 = -b / (2 * a);
        printf("%lf", x1);
    } else {
        // 如果b^2−4ac<0，则无实根。
        printf("No real root");
    }
    return 0;
}

*/